From 81169d18c3d2f22263ea04361ac6944eef892855 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 6 Nov 2021 16:25:11 +0100 Subject: [PATCH] label: max-width-chars should be ignored sometimes When a widget is neither wrappable nor ellipsizable, we cannot modify the label to fit into any size. So we cannot respect max-width-chars. --- gtk/gtklabel.c | 2 +- .../reftests/label-small-max-width-chars.ref.ui | 11 +++++++++++ testsuite/reftests/label-small-max-width-chars.ui | 12 ++++++++++++ testsuite/reftests/meson.build | 2 ++ 4 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 testsuite/reftests/label-small-max-width-chars.ref.ui create mode 100644 testsuite/reftests/label-small-max-width-chars.ui diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 46af2fb174..a82ec7bb77 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -1082,7 +1082,7 @@ get_static_size (GtkLabel *self, get_default_widths (self, &minimum_default, &natural_default); - layout = gtk_label_get_measuring_layout (self, NULL, natural_default); + layout = gtk_label_get_measuring_layout (self, NULL, self->ellipsize ? natural_default : -1); if (orientation == GTK_ORIENTATION_HORIZONTAL) { diff --git a/testsuite/reftests/label-small-max-width-chars.ref.ui b/testsuite/reftests/label-small-max-width-chars.ref.ui new file mode 100644 index 0000000000..ec722f56ce --- /dev/null +++ b/testsuite/reftests/label-small-max-width-chars.ref.ui @@ -0,0 +1,11 @@ + + + + 0 + + + Hello World + + + + diff --git a/testsuite/reftests/label-small-max-width-chars.ui b/testsuite/reftests/label-small-max-width-chars.ui new file mode 100644 index 0000000000..d3236e8035 --- /dev/null +++ b/testsuite/reftests/label-small-max-width-chars.ui @@ -0,0 +1,12 @@ + + + + 0 + + + Hello World + 2 + + + + diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build index d6857190cf..9f40c0f3a0 100644 --- a/testsuite/reftests/meson.build +++ b/testsuite/reftests/meson.build @@ -359,6 +359,8 @@ testdata = [ 'label-sizing.ui', 'label-small-ellipsized.ref.ui', 'label-small-ellipsized.ui', + 'label-small-max-width-chars.ref.ui', + 'label-small-max-width-chars.ui', 'label-text-shadow-clipping.css', 'label-text-shadow-clipping.ref.ui', 'label-text-shadow-clipping.ui', -- 2.30.2